﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Регл)
	///</summary>
	[DataContract]
	public enum ПорядокРасчетаОтпуска
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"22137750-92f4-4641-b695-082a1e0a4f7c\", \"Представление\":\"ПоШестидневке\"}")]
		ПоШестидневке = 0,//По шестидневке
		[EnumMember(Value = "{\"Ссылка\":\"a786ef46-5cf8-4577-a1a7-45731bfb145e\", \"Представление\":\"ПоКалендарнымДням\"}")]
		ПоКалендарнымДням = 1,//По календарным дням
	}
	public static partial class ПорядокРасчетаОтпуска_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ПоШестидневке = new Guid("2a0895b6-0a1e-7c4f-4641-92f422137750");//По шестидневке
		public static readonly Guid ПоКалендарнымДням = new Guid("7345a7a1-fb1b-5e14-4577-5cf8a786ef46");//По календарным дням
		public static ПорядокРасчетаОтпуска Получить(this ПорядокРасчетаОтпуска Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ПорядокРасчетаОтпуска Получить(this ПорядокРасчетаОтпуска Значение, Guid Ссылка)
		{
			if(Ссылка == ПоШестидневке)
			{
				return ПорядокРасчетаОтпуска.ПоШестидневке;
			}
			else if(Ссылка == ПоКалендарнымДням)
			{
				return ПорядокРасчетаОтпуска.ПоКалендарнымДням;
			}
			return ПорядокРасчетаОтпуска.ПустаяСсылка;
		}
		public static byte[] Ключ(this ПорядокРасчетаОтпуска Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ПорядокРасчетаОтпуска Значение)
		{
			switch (Значение)
			{
				case ПорядокРасчетаОтпуска.ПоШестидневке: return ПоШестидневке;
				case ПорядокРасчетаОтпуска.ПоКалендарнымДням: return ПоКалендарнымДням;
			}
			return Guid.Empty;
		}
	}
}